<?php

namespace WHMCS\Module\Addon\TestMo\Client;

// 负责根据不同的操作（action）分派任务到相应的方法
class ClientDispatcher {
    
// $action：表示要执行的操作或方法的名称。
// $parameters：是传递给方法的参数，通常是一个数组，包含了方法需要的输入。
    public function dispatch($action, $parameters)
    {
        // 创建了一个 Controller 类的实例
        $controller = new Controller();
        
        // 如果$action为空，默认调用Controller中的index方法
        if (!$action) {
            $action = 'index';
        }
        // 检查 $controller 是否具有 $action 方法
        // is_callable 函数会验证 $controller 对象是否能够调用指定的方法
        // 如果方法是可调用的，执行该方法并返回其结果
        if (is_callable(array($controller, $action))) {
            return $controller->$action($parameters);
        }
    }
}
